/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.guobo.dao;

import java.util.List;
import java.util.Map;

import com.thinkgem.jeesite.common.persistence.CrudDao;
import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
import com.thinkgem.jeesite.modules.guobo.entity.Asset;
import com.thinkgem.jeesite.modules.guobo.entity.ExhStock;
import com.thinkgem.jeesite.modules.guobo.entity.WarningRole;

/**
 * 资产DAO接口
 * @author wudavid
 * @version 2017-03-09
 */
@MyBatisDao
public interface AssetDao extends CrudDao<Asset> {

	/**
	 * 查询所有没有设置预警规则的rfid
	 * @return
	 */
	public List<Asset> findRfidsNotInRole(Asset asset);
	
	/**
	 * 根据展馆id查询展馆下的资产
	 * @return
	 */
	public List<Asset> findAssetsByExHallId(Asset asset);
	
	/**
	 * 根据展馆id查询非固定资产库存数量实体
	 * @param ids 展馆id
	 * @return
	 */
	public List<ExhStock> getExhStocksByParam(Map<String,Object> paramMap);
	
	/**
	 * 查询固定资产编码信息
	 * @param asset
	 * @return
	 */
	public List<Asset> findAllAssetCode(Asset asset);
	
	/**
	 * 查询非固定资产
	 * @param asset
	 * @return
	 */
	public List<Asset> findAllMaterialAsset(Asset asset);
	
	/**
	 * 根据展馆id查询固定资产库存数量实体
	 * @param ids 展馆id
	 * @return
	 */
	public List<ExhStock> getFixedAssetsExhStocksByParam(Map<String,Object> paramMap);
	
	/**
	 * 查询所有数据
	 * @param asset
	 * @return
	 */
	public List<Asset> findAllAssets(Asset asset);
	
	/**
	 * 根据rfid查询资产
	 * @param asset
	 * @return
	 */
	public Asset getAssetByRfid(Asset asset);
	
	/**
	 * 根据父rfid查询所有子资产
	 * @param asset
	 * @return
	 */
	public List<Asset> findAsstsByParentRfid(Asset asset);
	
	/**
	 * 查询非固定资产物料种类
	 * @param asset
	 * @return
	 */
	public List<Asset> findAsstsMaterial(Asset asset);
	
	/**
	 * 查询固定资产种类
	 * @param asset
	 * @return
	 */
	public List<Asset> findFixedAssts(Asset asset);
	
	/**
	 * 根据规则查询规则下所有的资产
	 * @param roleId
	 * @return
	 */
	public List<Asset> findAssetsByRoleId(String roleId);
}